package net.ericaro.neojavagen.expressions;

/**
 * <b>CastExpression</b> ::= <{@link net .ericaro .neojavagen .expressions .PrimitiveCastExpression PrimitiveCastExpression}> <
 * {@link net .ericaro .neojavagen .expressions .ReferenceTypeCastExpression ReferenceTypeCastExpression}>
 * 
 * @author eric@ericaro.net
 */
public class CastExpression extends net.ericaro.neojavagen.JavaPartComposition implements net.ericaro.neojavagen.expressions.UnaryExpressionNotPlusMinus, net.ericaro.neojavagen.expressions.UnaryExpression {
	private net.ericaro.neojavagen.expressions.PrimitiveCastExpression primitiveCastExpression;

	private net.ericaro.neojavagen.expressions.ReferenceTypeCastExpression referenceTypeCastExpression;

	public CastExpression(net.ericaro.neojavagen.expressions.PrimitiveCastExpression primitiveCastExpression, net.ericaro.neojavagen.expressions.ReferenceTypeCastExpression referenceTypeCastExpression) {
		super();
		this.primitiveCastExpression = primitiveCastExpression;
		this.referenceTypeCastExpression = referenceTypeCastExpression;
	}

	public net.ericaro.neojavagen.expressions.PrimitiveCastExpression getPrimitiveCastExpression() {
		return primitiveCastExpression;
	}

	public net.ericaro.neojavagen.expressions.ReferenceTypeCastExpression getReferenceTypeCastExpression() {
		return referenceTypeCastExpression;
	}

	public void setPrimitiveCastExpression(net.ericaro.neojavagen.expressions.PrimitiveCastExpression primitiveCastExpression) {
		this.primitiveCastExpression = primitiveCastExpression;
	}

	public void setReferenceTypeCastExpression(net.ericaro.neojavagen.expressions.ReferenceTypeCastExpression referenceTypeCastExpression) {
		this.referenceTypeCastExpression = referenceTypeCastExpression;
	}

	@Override
	public java.lang.String toString() {
		return print(primitiveCastExpression, referenceTypeCastExpression);
	}
}
